"""
保证一个类只有一个实例，并提供一个访问它的全局访问点

角色：
	单例（Singleton）
"""


class Singleton:
    """单例模式"""

    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, "_instance"):  # hasattr() 函数用于判断对象是否包含对应的属性。
            cls._instance = super(Singleton, cls).__new__(cls)

        return cls._instance


class Test(Singleton):
    def __init__(self, a):
        self.a = a


test = Test(10)
test1 = Test(20)

print(test.a)
print(test1.a)  # 无论创建多少个对象，都指向一个实例对象
print(id(test), id(test1))
